package com.qf.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.qf.entity.Phone;
import com.qf.service.PhoneService;
import com.qf.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;

/**
 * --- 人生两件事：走路与识人。道曲难行，路直景稀。---
 *
 * @author LHN
 * @date 2024/7/23
 * @desc
 */
@RestController
@RequestMapping("/md/unit")
public class PhoneController {

    @Autowired
    private PhoneService service;

    @GetMapping("/list")
    /*前端传来两个pageNum 当前页 pageSize（页面大小）
    用HashMap 和List 需要加注解  @RequestParam
    用Map 传来的是字符串 我们需要Integer.parseInt  转成数字
    * */
    public R findAll(@RequestParam HashMap<String,String> map){
        System.out.println(map);
        int pageNum = Integer.parseInt(map.get("pageNum"));
        int pageSize = Integer.parseInt(map.get("pageSize"));
        PageHelper.startPage(pageNum,pageSize);

        //查全部需要返回封装好的 所以用UnitMeasure 实体类
        List<Phone> list = service.findAll(map);  //map将来传给后端做模糊搜索的
        PageInfo<Phone> info = new PageInfo<>(list);  //分页信息 返回
        //System.out.println(info);
        return R.ok( info);
    }

    /**
     * 根据ID删除
     */
    @GetMapping("/del")
    public R delById(int id) {
        System.out.println("UnitMeasureController.delById接收的id" + id);
        boolean isok = service.deleteById(id);
        return R.ok(isok);
    }


    /**
     * 批量删除
     */

    @GetMapping("/delBatch")
    //@RequestBody   是接对象的
    //@RequestParam  是接List map 的
    //Get不需要RequestBody     Past要RequestBody
    public R delBatch(@RequestParam List<Integer> ids){
        //System.out.println("打印集合   Arrays.tostring(ids)   ");
        //System.out.println("UnitMeasureController.delBatch,接收到的ids = " +ids ); //打印数组
        boolean isok = service.delBatch(ids);
        return R.ok(isok);
    }

    /*添加计量单位*/
    @PostMapping("/add")  //用对象接收
    public R addMessure(@RequestBody Phone measure) {

        boolean isok = service.addPhone(measure);
        return R.ok(isok);
    }



    /*测试未启用 修改计量单位 */
    @PostMapping("/gengai")  //用对象接收
    public R modify(@RequestBody Phone toModify) {

        boolean isok = service.modify(toModify);
        return R.ok(isok);
    }


    /*修改计量单位*/
    @PostMapping("/upData")
    public R upData(@RequestBody HashMap<String,String> map){
        //System.out.println("这个listing是"+map);

        boolean ok = service.upDataMeasure(map);
        return R.ok(ok);
    }

}
